package com.heima.api.wemedia;

import com.heima.model.common.dtos.ResponseResult;
import com.heima.model.wemedia.dtos.NewsAuthDto;
import com.heima.model.wemedia.dtos.WmNewsDto;
import com.heima.model.wemedia.dtos.WmNewsPageReqDto;
import com.heima.model.wemedia.pojos.WmNews;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;

import java.util.List;

/**
 * @ClassName WnNewsControllerApi
 * @Description 文章管理控制层接口
 * @Author AWei
 * @DATE 2021/4/15 17:24
 * @Version 1.0
 */
@Api(value = "自媒体文章管理", tags = "自媒体文章管理-WmNews", description = "自媒体文章管理 API")
public interface WmNewsControllerApi {

    /**
     * @param wmNewsPageReqDto 请求携带数据封装对象
     * @return 查询结果
     * @Description 分页带条件查询自媒体文章列表
     */
    @ApiOperation("分页带条件查询自媒体文章列表")
    ResponseResult findAllNewsByAnyCondition(WmNewsPageReqDto wmNewsPageReqDto);

    /**
     * @param wmNewsDto 文章编写请求携带参数封装对象
     * @return 提交结果
     * @Description 提交文章
     */
    ResponseResult submitNews(WmNewsDto wmNewsDto);

    /**
     * @return
     * @Description 根据id获取文章信息
     */
    ResponseResult findWmNewsById(Integer id);

    /**
     * @return
     * @Description 删除文章
     */
    ResponseResult delNews(Integer id);

    /**
     * @param dto
     * @return
     * @Description 上下架
     */
    ResponseResult downOrUp(WmNewsDto dto);

    /**
     * @param id 文章id
     * @return 查询结果
     * @Description 根据id查询文章
     */
    WmNews findById(Integer id);

    /**
     * @param wmNews 文章对象
     * @return 更新结果
     * @Description 修改文章
     */
    ResponseResult updateWmNews(WmNews wmNews);

    /**
     * @return 查询结果
     * @Description 查询需要发布的文章id列表
     */
    List<Integer> findRelease();

    /**
     * @param newsAuthDto 文章列表分页查询条件对象
     * @return 分页查询结果集
     * @Description 查询文章列表
     */
    ResponseResult findList(NewsAuthDto newsAuthDto);

    /**
     * @param id 文章id
     * @return 查询结果
     * @Description 查询文章详情
     */
    ResponseResult findWmNewsVo(Integer id);

    /**
     * @param newsAuthDto 文章列表分页查询条件对象
     * @return 响应结果
     * @Description 文章审核成功
     */
    ResponseResult authPass(NewsAuthDto newsAuthDto);

    /**
     * @param newsAuthDto 文章列表分页查询条件对象
     * @return 响应结果
     * @Description 文章审核失败
     */
    ResponseResult authFail(NewsAuthDto newsAuthDto);
}
